www.gusucode.com > LTE基带收发仿真系统matlab源码程序 > LTE baseband simulation/scramble.m
function scramblBits = scramble (codeBit,iCW,RNTI,iSubFrame,cellID) % 功能:比特级加扰函数 % 参考文献 TS 36.211 V8.7.0 section 6.3.1 % 输入:codeBit:码块级联后的二进制数据 % iCW:第iUE个用户的第iCW个码字 % RNTI:无线网络临时标识 % iSubFrame:第i个子帧 % cellID:小区ID % 输出:scramblBits:加扰后二进制数据 % Author: 程式小组(徐萌 张妙 张晓庆) % Date: 2010-07-11 % ========================================================== ns = iSubFrame*2; % 偶数时隙号 Nc = 1600; % 恒定常数 % % ========================= 用于测试 ================================ % % clear % % clc % % input = round(rand(2,40)); % % RNTI = 1; % % cellID = 1; % % Nc = 0; % % ns = 0; % % =================================================================== nBit = size(codeBit,2); %下行传输码字数,每码字比特数 nPN = nBit; %PN序列长度等于每码字比特数 % % =========== pseudo-random 序列生成 ================================ % % 生成公式为c(n) = (x1(n+Nc)+x2(n+Nc))mod 2,先求x1和x2 x1 = zeros(1,nPN+Nc); x2 = zeros(1,nPN+Nc); x1(1,1:31) = bitget(1,1:31); % PDSCH 加扰初始化 if mod(ns,2) == 0 %每个subframe开始时初始化 c_init = RNTI*2^14+(iCW-1)*2^13+floor(ns/2)*2^9+cellID; x2(1:31) = bitget(c_init,1:31); end for n = 1:nPN+Nc-31 x1(1,n+31) = mod((x1(n+3)+x1(n)),2); x2(n+31) = mod((x2(n+3)+x2(n+2)+x2(n+1)+x2(n)),2); end c = mod((x1(1+Nc:end)+x2(1+Nc:end)),2); %扰码 scramblBits = mod(codeBit+c,2);